Docker上运行Lean大源码编译的OpenWRT(初稿) – OpenWrt Club 您所在的位置:网站首页 openwrt双系统 启动 Docker上运行Lean大源码编译的OpenWRT(初稿) – OpenWrt Club

Docker上运行Lean大源码编译的OpenWRT(初稿) – OpenWrt Club

2023-06-21 07:48| 来源: 网络整理| 查看: 265

其实,我一直想把ESXi这样的hypervisor换掉,使用Linux作为宿主机,将所有的服务全部docker化,移动到我的软路由上,所以我第一步就需要将OpenWRT先移植到Docker上了。随便搜了一下,发现大部分都是官方版OpenWRT运行在Docker上的教程,所以一咬牙一跺脚还是自己把L大版本的OpenWRT移植到Docker上吧,如果有幸这篇教程被看到,希望能抛砖引玉为各位提供思路。

安装 docker

Docker的安装过程我想应该不用详述了,放命令:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.shzh准备工作

为了在之后可以在Docker中运行L大的OpenWRT,所以我们在编译固件的时候,需要选中如下选项,废话不多说上图:

Docker上运行Lean大源码编译的OpenWRT(初稿)-OpenWrt Club

编译完成后,留下openwrt-x86-64-generic-rootfs.tar.gz文件备用。

宿主机Linux的基本配置

由于需要将Linux配置为宿主机,所以Linux上需要进行一些基本的设置。

打开所需要使用的网卡的混杂模式ip link set ens33 promisc on ip link set ens34 promisc on加载pppoe内核模块modprobe pppoeDocker容器的网络配置

为 docker 创建 macvlan 模式的虚拟网卡,并关联到宿主机。涉及到ipv4,ipv6地址请自行修改

LAN 口docker network create -d macvlan --subnet=172.16.60.0/24 --gateway=172.16.60.254 --ipv6 --subnet=fe80::/16 --gateway=fe80::1 -o parent=ens33 -o macvlan_mode=bridge openwrt-LANWAN 口docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.254 --ipv6 --subnet=fe81::/16 --gateway=fe81::1 -o parent=ens34 -o macvlan_mode=bridge openwrt-WAN建立以及启动容器创建容器镜像docker import openwrt-x86-64-generic-rootfs.tar.gz lean_openwrt启动容器docker run -it -d --restart always --network openwrt-LAN --privileged --name openwrt lean_openwrt /sbin/init将第二块网卡的挂接到 openwrtdocker network connect openwrt-WAN openwrt修改OpenWRT配置进入容器docker exec -it openwrt /bin/sh编辑 /etc/config/networkconfig interface 'lan' option type 'bridge' option ifname 'eth0' option proto 'static' option ipaddr '172.16.60.1' option netmask '255.255.255.0' option ip6assign '64' config interface 'wan' option ifname 'eth1' option proto 'dhcp' option ip6assign '64'重启OpenWRT网络服务/etc/init.d/network restart将OpenWRT作为宿主机的网关

由于容器网络采用 macvlan 的 bridge 模式,即使宿主机与容器在同一网段,相互之间也是无法通信的。为了解决这个问题,需利用多个 macvlan 接口之间是互通的原理,新建macvlan虚拟接口:

ip link add link ens33 vLAN type macvlan mode bridge ip addr add 172.16.60.253/24 brd + dev vLAN ip link set vLAN up ip route del default ip route add default via 172.16.60.1 dev vLAN #设置宿主机的dns服务器为OpenWRT echo "nameserver 172.16.60.1" > /etc/resolv.conf 将宿主机的网络配置加入到自启动脚本中

为了保证在Linux重启后,网络依然可以生效,我们将上一步中的配置加入到启动脚本(例如rc.local)。

剩下的事情就是OpenWRT的基本配置了,在这里就不在详述了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有